package jdbc;
import clases.*;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.ArrayList;

public class PartidoJDBC {

    public static void insertarPartido(Partido partido){
        String sql = "insert into partido (equipoLocal, equipoVisitante, golesLocal, golesVisitante, idJornada) ";
        sql += " values('"+partido.getEquipoLocal().getNombre()+"', '"+partido.getEquipoVisitante().getNombre()+"', ";
        sql +=  " "+partido.getGolesLocal()+", "+partido.getGolesVisitante()+", "+partido.getJornada().getIdJornada()+" )";
        //System.out.println(sql);
        Connection con = null;
        Statement st = null;
        try{
            con = AccesoDatos.getConexion();
            st = con.createStatement();
            st.execute(sql);
            st.close();
        }
        catch(Exception e){
            System.out.println("Error al insertar un partido "+e.getMessage());
        }
        finally{
            AccesoDatos.cerrarConexion(con);
        }
    }
    public static ArrayList<Partido> obtenerPartidosSegunJornada(Jornada jornada){
        String sql = "select * from partido where idJornada = "+jornada.getIdJornada()+" order by idPartido";
        ArrayList<Partido> lista = new ArrayList<Partido>();
        //System.out.println(sql);
        Connection con = null;
        Statement st = null;
        ResultSet rs1 = null;
        try{
            con = AccesoDatos.getConexion();
            st = con.createStatement();
            rs1 = st.executeQuery(sql);

            while(rs1.next()){
                Partido partido = new Partido();
                partido.setIdPartido(rs1.getInt("idPartido"));
                partido.setEquipoLocal(EquipoJDBC.obtenerEquipoPorId(rs1.getString("equipoLocal"), con));
                partido.setEquipoVisitante(EquipoJDBC.obtenerEquipoPorId(rs1.getString("equipoVisitante"), con));
                partido.setGolesLocal(rs1.getInt("golesLocal"));
                partido.setGolesVisitante(rs1.getInt("golesVisitante"));
                partido.setJornada(jornada);
                lista.add(partido);
            }
            rs1.close();
            st.close();
        }
        catch(Exception e){
            System.out.println("Error al recuperar los partidos de una jornada "+e.getMessage());
        }
        finally{
            AccesoDatos.cerrarConexion(con);
        }
        return lista;
    }


    public static void actualizarPartido(Partido partido){
        String sql = "update partido set golesLocal = "+partido.getGolesLocal()+", golesVisitante = "+partido.getGolesVisitante()+" ";
        sql += " where idPartido = "+partido.getIdPartido();

        Connection con = null;
        Statement st = null;

        try{
            con = AccesoDatos.getConexion();
            st = con.createStatement();
            st.execute(sql);
            st.close();
        }
        catch(Exception e){
            System.out.println("Error al actualizar el  partido "+e.getMessage());
        }
        finally{
            AccesoDatos.cerrarConexion(con);
        }
    }
}